音声データのsampling rateを変えたい
https://stackoverflow.com/a/66999542 を参照
librosa.resample(y, *, orig_sr, target_sr, ...)
https://librosa.org/doc/latest/generated/librosa.resample.html#librosa.resample
Resample a time series from orig_sr to target_sr
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.html ではなさそうだった
code:py
>> from scipy.io import wavfile
>> from ttslearn.util import example_audio_file
>> import numpy as np
>> sampling_rate, audio_array = wavfile.read(example_audio_file())
>> sampling_rate
48000
>> audio_array.shape
(153120,)
>> audio_array.dtype # 注意:intでない場合もある
dtype('int16')
>> # 48000 -> 16000 にしたい
>> resampled = librosa.resample(audio_array.astype(np.float32), orig_sr=sampling_rate, target_sr=16000) # np.int16のままだとエラー(floatを要求)
>> resampled.shape
(51040,)
>> resampled.dtype
dtype('float32')
>> import sounddevice as sd
>> sd.play(resampled.astype(np.int16), 16000) # np.int16にせずfloatのままだと、音が大きい・めちゃくちゃ割れる
関連:scipyでwavファイルを読み込める!
注意について:ESPnet による音声認識入門 ~ESPnet Model Zoo 編~